package com;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class T {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println("打印list"+list);
        // 增强for循环
        for(String s : list){
            System.out.println("增强for循环遍历"+s);
        }
        System.out.println("------------------");
        //普通for循环
        for(int i = 0;i < list.size();i++){
            System.out.println(list.get(i));
        }
        list.forEach(l -> {
            System.out.println("forEach遍历" + l);
        });

        Map<String,Object> map = new HashMap<>();
        map.put("a","aa");
        map.put("b","bb");
        map.put("c","cc");
        //Map.Entry是Map声明的一个内部接口，此接口为泛型，定义为Entry<K,V>。它表示Map中的一个实体（key-value）。
        //entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }
        //获取所有的key
        for(String s :map.keySet()){
            System.out.println(s);
        }
        //获取所有的value
        for (Object o :map.values()){
            System.out.println(o);
        }
        //Lambda表达式
        map.forEach((key,value) ->{
            System.out.println("map的forEach遍历"+key + ":" + value);
        });
    }
}
